/**
 * @file: Mano.cpp
 * @author: Freddy Valda
 * @date: JUN-12-2009
 * @desc: Interfaz de la clase Mano, nueva version
 */
 

#include "Carta.h" 
#include "Mano.h"
#include "Constantes.h"
#include <iostream>
#include <cmath>
using namespace std;


// Implementacion del constructor con variables de entrada (las 2 cartas privadas)

Mano::Mano(Carta carta1, Carta carta2) 
{ 
    _carta1 = carta1;
    _carta2 = carta2;
}

Mano::Mano(){}

// Implementacion de las funciones set para las propiedades de la clase mano

void  Mano::setCarta1(Carta carta1)
{
     _carta1 = carta1;
}


void  Mano::setCarta2(Carta carta2)
{
     _carta2 = carta2;
}

// Implementacion Funciones get para las propiedades de la clase mano

Carta Mano::getCarta1()
{
      return _carta1;
}


Carta Mano::getCarta2()
{
      return _carta2;
}


float Mano::calcularProbabilidadPreflop(int numJugadores)
{
    // Utilizamos 2 objetos del tipo carta, que son auxiliares para obtener los datos de las cartas de la mano  
    Carta carta1 = getCarta1();
    Carta carta2 = getCarta2(); 
    
    // Guardamos la informacion de las cartas en variables del tipo int
    int carta1numero=carta1.getValor();
    int carta1palo=carta1.getPalo();
    int carta2numero= carta2.getValor() ;
    int carta2palo=carta2.getPalo();
    
    //Declaramos una variable tipo float que almacenara la probabilidad y la inicializamos en 0
    float probabilidad = 0;

    //Si la carta es un AS, cambiamos el valor de la variable cartanumero a 1 (solo se cambia para efectos del calculo, el valor de la carta en el objeto sigue siendo el mismo)
    if(carta1numero==14)
    {
        carta1numero=1;
    }
    if(carta2numero==14)
    {
        carta2numero=1;
    }
    
    //Validamos que no existan cartas iguales, si son iguales (cosa que no deberia ocurrir debido a que se tiene solo un mazo) retornamos la probabilidad de 0
    
    if(carta1numero==carta2numero && carta1palo==carta2palo)
    { 
        return probabilidad;
    }
    
    
    //Validamos el numero de jugadores, en caso de no ser correcto retornamos la probabilidad de 0
    
    if(numJugadores>10 && numJugadores<2  )
    { 
        return probabilidad;
    }
    
    //Dado que la probabilidad de ganar el juego depende directamente del numero de jugadores, declaramos un switch para cada numero de jugadores
    //Las reglas del poker texas hold em establecen la cantidad maxima de jugadores = 10 http://es.wikipedia.org/wiki/Poker_Texas_hold_'em  http://es.pacificpoker.com/es/online-poker-rules/texas-holdem--2.htm
    //El calculo se realiza respaldado por las tablas de probabilidad preflop debido al consumo de pocos recursos ya que si se tendria que calcular todo por cada llamada a la funcion, se reduciria de manera significativa el rendimiento del programa
    //El uso de tablas de probabilidad es muy comun entre programas similares llamados "calculadora de probabilidades preflop" en sitios como http://www.aprenderpoker.net/calculadora-probabilidades-preflop por ejemplo
    //Se declaran las tablas de probabilidad preflop una vez que se tiene cada caso, para evitar el uso innecesario de memoria 
    
    switch (numJugadores)
    {
        case 2:
        {
             float tablade2 [50][50]= 
             {          
                {85.3,	54.6,	55.6,	56.4,	57.7,	57.8,	59.1,	60.1,	60.9,	62.9,	63.6,	64.5,	65.4,},
                {54.6,	50.3,	31.2,	32.5,	33.9,	34,	34.6,	36.8,	38.9,	41.5,	44,	47,	50.2},
                {55.6,	31.2,	53.7,	34.4,	35.8,	35.9,	36.6,	37.5,	39.9,	42.4,	45,	47.9,	51.2},
                {56.4,	32.5,	34.4,	57,	37.9,	38,	38.6,	39.6,	40.7,	43.4,	46.1,	49,	52.1},
                {57.7,	33.9,	35.8,	37.9,	60.3,	40.1,	40.8,	41.7,	42.9,	44.2,	47.1,	50.2,	53.3},
                {57.8,	34,	35.9,	38,	40.1,	63.3,	42.7,	43.6,	44.9,	46.3,	47.9,	51.1,	54.3},
                {59.1,	34.6,	36.6,	38.6,	40.8,	42.7,	66.2,	45.5,	46.7,	48.2,	49.9,	51.9,	55.4},
                {60.1,	36.8,	37.5,	39.6,	41.7,	43.6,	45.5,	69.1,	48.4,	50,	51.7,	53.8,	56.3},
                {60.9,	38.9,	39.9,	40.7,	42.9,	44.9,	46.7,	48.4,	72.1,	51.7,	53.4,	55.5,	58},
                {62.9,	41.5,	42.4,	43.4,	44.2,	46.3,	48.2,	50,	51.7,	75.1,	55.4,	57.4,	59.9},
                {63.6,	44,	45,	46.1,	47.1,	47.9,	49.9,	51.7,	53.4,	55.4,	77.5,	58.2,	60.6},
                {64.5,	47,	47.9,	49,	50.2,	51.1,	51.9,	53.8,	55.5,	57.4,	58.2,	79.9,	61.4},
                {65.4,	50.2,	51.2,	52.1,	53.3,	54.3,	55.4,	56.3,	58,	59.9,	60.6,	61.4,	82.4},
             };
            
            probabilidad= tablade2[carta1numero -1 ][carta2numero -1];     
            break;
        }
        
       case 3:
       {
            float tablade3 [50][50]= 
            {  
                {73.4,	35.0,	35.9,	36.9,	38.2,	38.0,	39.4,	40.8,	41.8,	44.4,	45.6,	46.8,	48.2},
                {35.0,	30.7,	19.5,	20.5,	21.3,	20.7,	20.4,	21.7,	22.9,	24.7,	26.2,	28.4,	30.9},
                {35.9,	19.5,	33.5,	22.3,	23.3,	22.7,	22.4,	22.4,	23.9,	25.5,	27.1,	29.2,	31.9},
                {36.9,	20.5,	22.3,	36.8,	25.2,	24.7,	24.5,	24.4,	24.6,	26.4,	28.1,	30.2,	32.8},
                {38.2,	21.3,	23.3,	25.2,	40.1,	26.7,	26.5,	26.5,	26.7,	27.1,	29.1,	31.3,	34.0},
                {38.0,	20.7,	22.7,	24.7,	26.7,	43.2,	28.5,	28.6,	28.8,	29.2,	29.8,	32.3,	35.0},
                {39.4,	20.4,	22.4,	24.5,	26.5,	28.5,	46.4,	30.6,	30.9,	31.4,	32.1,	33.2,	36.1},
                {40.8,	21.7,	22.4,	24.4,	26.5,	28.6,	30.6,	49.9,	32.9,	33.6,	34.2,	35.4,	37.2},
                {41.8,	22.9,	23.9,	24.6,	26.7,	28.8,	30.9,	32.9,	53.5,	35.7,	36.5,	37.6,	39.5},
                {44.4,	24.7,	25.5,	26.4,	27.1,	29.2,	31.4,	33.6,	35.7,	57.7,	39.0,	40.2,	42.0},
                {45.6,	26.2,	27.1,	28.1,	29.1,	29.8,	32.1,	34.2,	36.5,	39.0,	61.2,	41.4,	43.1},
                {46.8,	28.4,	29.2,	30.2,	31.3,	32.3,	33.2,	35.4,	37.6,	40.2,	41.4,	64.9,	44.4},
                {48.2,	30.9,	31.9,	32.8,	34.0,	35.0,	36.1,	37.2,	39.5,	42.0,	43.1,	44.4,	68.9},
            };
            probabilidad= tablade3[carta1numero -1 ][carta2numero -1];     
            break;
        }
        
       case 4:
       {
            float tablade4 [50][50]= 
            {  
                {63.9,	25.2,	26.1,	26.9,	27.9,	27.6,	28.9,	30.1,	31.2,	34.1,	35.4,	36.9,	38.6},
                {25.2,	22.0,	13.9,	14.7,	15.3,	14.6,	14.2,	15.1,	16.0,	17.3,	18.4,	19.9,	21.8},
                {26.1,	13.9,	23.9,	16.3,	17.1,	16.4,	16.0,	15.7,	16.7,	18.0,	19.1,	20.7,	22.7},
                {26.9,	14.7,	16.3,	26.3,	18.8,	18.2,	17.9,	17.5,	17.3,	18.7,	19.9,	21.4,	23.4},
                {27.9,	15.3,	17.1,	18.8,	28.8,	20.0,	19.7,	19.4,	19.2,	19.3,	20.7,	22.3,	24.5},
                {27.6,	14.6,	16.4,	18.2,	20.0,	31.5,	21.5,	21.3,	21.2,	21.2,	21.4,	23.2,	25.3},
                {28.9,	14.2,	16.0,	17.9,	19.7,	21.5,	34.4,	23.2,	23.1,	23.4,	23.5,	24.0,	26.3},
                {30.1,	15.1,	15.7,	17.5,	19.4,	21.3,	23.2,	37.5,	25.1,	25.4,	25.6,	26.2,	27.3},
                {31.2,	16.0,	16.7,	17.3,	19.2,	21.2,	23.1,	25.1,	41.1,	27.7,	27.9,	28.5,	29.6},
                {34.1,	17.3,	18.0,	18.7,	19.3,	21.2,	23.4,	25.4,	27.7,	45.2,	30.7,	31.3,	32.5},
                {35.4,	18.4,	19.1,	19.9,	20.7,	21.4,	23.5,	25.6,	27.9,	30.7,	49.2,	32.6,	33.6},
                {36.9,	19.9,	20.7,	21.4,	22.3,	23.2,	24.0,	26.2,	28.5,	31.3,	32.6,	53.5,	35.2},
                {38.6,	21.8,	22.7,	23.4,	24.5,	25.3,	26.3,	27.3,	29.6,	32.5,	33.6,	35.2,	58.2},
            };
            probabilidad= tablade4[carta1numero -1 ][carta2numero -1];     
            break;
       }
       
       case 5:
       {
            float tablade5 [50][50]=
            {  
                {55.9,	19.6,	20.4,	21.1,	22.0,	21.5,	22.6,	23.7,	24.7,	27.6,	28.9,	30.4,	32.4},
                {19.6,	17.8,	10.8,	11.5,	12.0,	11.2,	10.7,	11.4,	12.1,	13.2,	14.1,	15.3,	16.9},
                {20.4,	10.8,	19.0,	12.8,	13.6,	12.8,	12.3,	11.9,	12.7,	13.7,	14.6,	15.9,	17.6},
                {21.1,	11.5,	12.8,	20.6,	15.0,	14.4,	13.9,	13.4,	13.2,	14.3,	15.3,	16.4,	18.1},
                {22.0,	12.0,	13.6,	15.0,	22.4,	15.9,	15.5,	15.2,	14.8,	14.8,	15.9,	17.3,	19.0},
                {21.5,	11.2,	12.8,	14.4,	15.9,	24.5,	17.1,	16.9,	16.6,	16.5,	16.5,	17.9,	19.7},
                {22.6,	10.7,	12.3,	13.9,	15.5,	17.1,	26.8,	18.5,	18.4,	18.4,	18.3,	18.6,	20.5},
                {23.7,	11.4,	11.9,	13.4,	15.2,	16.9,	18.5,	29.4,	20.1,	20.4,	20.4,	20.6,	21.4},
                {24.7,	12.1,	12.7,	13.2,	14.8,	16.6,	18.4,	20.1,	32.6,	22.5,	22.5,	22.9,	23.6},
                {27.6,	13.2,	13.7,	14.3,	14.8,	16.5,	18.4,	20.4,	22.5,	36.4,	25.3,	25.7,	26.5},
                {28.9,	14.1,	14.6,	15.3,	15.9,	16.5,	18.3,	20.4,	22.5,	25.3,	40.3,	26.9,	27.6},
                {30.4,	15.3,	15.9,	16.4,	17.3,	17.9,	18.6,	20.6,	22.9,	25.7,	26.9,	44.7,	29.3},
                {32.4,	16.9,	17.6,	18.1,	19.0,	19.7,	20.5,	21.4,	23.6,	26.5,	27.6,	29.3,	49.8},
            };
            probabilidad= tablade5[carta1numero -1 ][carta2numero -1];     
            break;
       }
       
       case 6:
       {
            float tablade6 [50][50]= 
            {  
                {49.2,	16.1,	16.7,	17.3,	18.0,	17.5,	18.4,	19.4,	20.3,	23.1,	24.4,	25.9,	27.9},
                {16.1,	15.5,	8.9,	9.5,	10.0,	9.1,	8.6,	9.1,	9.6,	10.6,	11.3,	12.3,	13.7},
                {16.7,	8.9,	16.2,	10.7,	11.4,	10.6,	9.9,	9.5,	10.1,	11.0,	11.7,	12.8,	14.2},
                {17.3,	9.5,	10.7,	17.3,	12.6,	12.0,	11.4,	10.8,	10.5,	11.5,	12.3,	13.3,	14.7},
                {18.0,	10.0,	11.4,	12.6,	18.5,	13.3,	12.8,	12.4,	12.0,	11.9,	12.8,	13.9,	15.4},
                {17.5,	9.1,	10.6,	12.0,	13.3,	20.1,	14.2,	13.9,	13.5,	13.4,	13.2,	14.4,	16.0},
                {18.4,	8.6,	9.9,	11.4,	12.8,	14.2,	21.9,	15.4,	15.1,	15.1,	14.9,	15.1,	16.7},
                {19.4,	9.1,	9.5,	10.8,	12.4,	13.9,	15.4,	24.0,	16.6,	16.9,	16.8,	16.9,	17.4},
                {20.3,	9.6,	10.1,	10.5,	12.0,	13.5,	15.1,	16.6,	26.6,	18.9,	18.7,	19.0,	19.5},
                {23.1,	10.6,	11.0,	11.5,	11.9,	13.4,	15.1,	16.9,	18.9,	30.0,	21.5,	21.6,	22.3},
                {24.4,	11.3,	11.7,	12.3,	12.8,	13.2,	14.9,	16.8,	18.7,	21.5,	33.6,	22.9,	23.5},
                {25.9,	12.3,	12.8,	13.3,	13.9,	14.4,	15.1,	16.9,	19.0,	21.6,	22.9,	37.9,	25.1},
                {27.9,	13.7,	14.2,	14.7,	15.4,	16.0,	16.7,	17.4,	19.5,	22.3,	23.5,	25.1,	43.0},
            };
            probabilidad= tablade6[carta1numero -1 ][carta2numero -1];     
            break;
       }
       
       case 7:
       {
            float tablade7 [50][50]=
            {  
                {43.6,	13.6,	14.2,	14.7,	15.2,	14.7,	15.4,	16.2,	17.1,	19.8,	21.0,	22.5,	24.4},
                {13.6,	14.2,	7.7,	8.3,	8.6,	7.8,	7.2,	7.5,	8.0,	8.8,	9.4,	10.3,	11.5},
                {14.2,	7.7,	14.6,	9.3,	9.9,	9.1,	8.4,	7.9,	8.3,	9.1,	9.8,	10.7,	11.9},
                {14.7,	8.3,	9.3,	15.2,	11.0,	10.3,	9.7,	9.0,	8.7,	9.5,	10.2,	11.0,	12.3},
                {15.2,	8.6,	9.9,	11.0,	16.0,	11.5,	11.0,	10.5,	10.0,	9.9,	10.6,	11.6,	12.9},
                {14.7,	7.8,	9.1,	10.3,	11.5,	17.3,	12.2,	11.8,	11.4,	11.2,	11.0,	12.0,	13.3},
                {15.4,	7.2,	8.4,	9.7,	11.0,	12.2,	18.6,	13.1,	12.8,	12.8,	12.4,	12.5,	13.9},
                {16.2,	7.5,	7.9,	9.0,	10.5,	11.8,	13.1,	20.3,	14.2,	14.4,	14.1,	14.1,	14.6},
                {17.1,	8.0,	8.3,	8.7,	10.0,	11.4,	12.8,	14.2,	22.4,	16.2,	15.9,	16.1,	16.5},
                {19.8,	8.8,	9.1,	9.5,	9.9,	11.2,	12.8,	14.4,	16.2,	25.3,	18.6,	18.6,	19.2},
                {21.0,	9.4,	9.8,	10.2,	10.6,	11.0,	12.4,	14.1,	15.9,	18.6,	28.5,	19.8,	20.2},
                {22.5,	10.3,	10.7,	11.0,	11.6,	12.0,	12.5,	14.1,	16.1,	18.6,	19.8,	32.5,	21.8},
                {24.4,	11.5,	11.9,	12.3,	12.9,	13.3,	13.9,	14.6,	16.5,	19.2,	20.2,	21.8,	37.5},
            };
            probabilidad= tablade7[carta1numero -1 ][carta2numero -1];     
            break;
       }
       
       case 8:
       {
            float tablade8 [50][50]= 
            {  
                {38.8,	11.7,	12.2,	12.6,	13.1,	12.6,	13.2,	13.9,	14.7,	17.2,	18.3,	19.7,	21.6},
                {11.7,	13.3,	6.8,	7.3,	7.6,	6.8,	6.1,	6.4,	6.8,	7.5,	8.0,	8.8,	9.8},
                {12.2,	6.8,	13.5,	8.3,	8.8,	8.0,	7.2,	6.7,	7.1,	7.8,	8.3,	9.1,	10.2},
                {12.6,	7.3,	8.3,	13.9,	9.8,	9.2,	8.5,	7.8,	7.3,	8.1,	8.6,	9.4,	10.5},
                {13.1,	7.6,	8.8,	9.8,	14.4,	10.2,	9.7,	9.1,	8.5,	8.4,	8.9,	9.8,	11.0},
                {12.6,	6.8,	8.0,	9.2,	10.2,	15.4,	10.8,	10.4,	9.8,	9.5,	9.3,	10.1,	11.3},
                {13.2,	6.1,	7.2,	8.5,	9.7,	10.8,	16.4,	11.5,	11.1,	11.0,	10.6,	10.6,	11.8},
                {13.9,	6.4,	6.7,	7.8,	9.1,	10.4,	11.5,	17.7,	12.3,	12.5,	12.2,	12.1,	12.5},
                {14.7,	6.8,	7.1,	7.3,	8.5,	9.8,	11.1,	12.3,	19.4,	14.1,	13.8,	13.8,	14.1},
                {17.2,	7.5,	7.8,	8.1,	8.4,	9.5,	11.0,	12.5,	14.1,	21.8,	16.3,	16.3,	16.7},
                {18.3,	8.0,	8.3,	8.6,	8.9,	9.3,	10.6,	12.2,	13.8,	16.3,	24.6,	17.3,	17.7},
                {19.7,	8.8,	9.1,	9.4,	9.8,	10.1,	10.6,	12.1,	13.8,	16.3,	17.3,	28.3,	19.1},
                {21.6,	9.8,	10.2,	10.5,	11.0,	11.3,	11.8,	12.5,	14.1,	16.7,	17.7,	19.1,	32.9},
            };
            probabilidad= tablade8[carta1numero -1 ][carta2numero -1];     
            break;
       }
       
       case 9:
       {
            float tablade9 [50][50]= 
            {  
                {34.7,	10.2,	10.7,	11.0,	11.5,	10.9,	11.4,	12.0,	12.8,	15.1,	16.1,	17.5,	19.2},
                {10.2,	12.5,	6.1,	6.6,	6.8,	6.0,	5.4,	5.6,	5.9,	6.6,	7.0,	7.7,	8.6},
                {10.7,	6.1,	12.6,	7.5,	8.0,	7.2,	6.4,	5.8,	6.1,	6.8,	7.2,	7.9,	8.9},
                {11.0,	6.6,	7.5,	12.9,	8.9,	8.3,	7.6,	6.8,	6.4,	7.0,	7.5,	8.1,	9.1},
                {11.5,	6.8,	8.0,	8.9,	13.2,	9.2,	8.7,	8.1,	7.4,	7.2,	7.7,	8.5,	9.5},
                {10.9,	6.0,	7.2,	8.3,	9.2,	14.0,	9.6,	9.2,	8.7,	8.3,	8.0,	8.8,	9.8},
                {11.4,	5.4,	6.4,	7.6,	8.7,	9.6,	14.8,	10.3,	9.8,	9.7,	9.2,	9.2,	10.2},
                {12.0,	5.6,	5.8,	6.8,	8.1,	9.2,	10.3,	15.8,	10.9,	11.0,	10.7,	10.5,	10.8},
                {12.8,	5.9,	6.1,	6.4,	7.4,	8.7,	9.8,	10.9,	17.2,	12.6,	12.1,	12.1,	12.3},
                {15.1,	6.6,	6.8,	7.0,	7.2,	8.3,	9.7,	11.0,	12.6,	19.2,	14.5,	14.4,	14.7},
                {16.1,	7.0,	7.2,	7.5,	7.7,	8.0,	9.2,	10.7,	12.1,	14.5,	21.6,	15.3,	15.6},
                {17.5,	7.7,	7.9,	8.1,	8.5,	8.8,	9.2,	10.5,	12.1,	14.4,	15.3,	24.9,	16.9},
                {19.2,	8.6,	8.9,	9.1,	9.5,	9.8,	10.2,	10.8,	12.3,	14.7,	15.6,	16.9,	29.2},
            };
            probabilidad= tablade9[carta1numero -1 ][carta2numero -1];     
            break;
       }

       case 10:
       {
            float tablade10 [50][50]= 
            {  
                {31.1,	9.1,	9.5,	9.8,	10.1,	9.6,	10.1,	10.6,	11.2,	13.4,	14.3,	15.5,	17.2},
                {9.1,	12.0,	5.6,	6.0,	6.2,	5.4,	4.8,4.9,	5.2,	5.8,	6.2,	6.8,	7.6},
                {9.5,	5.6,	12.0,	6.8,	7.3,	6.5,	5.7,	5.1,	5.4,	6.0,	6.3,	6.9,	7.8},
                {9.8,	6.0,	6.8,	12.1,	8.2,	7.6,	6.8,	6.1,	5.6,	6.2,	6.5,	7.1,	8.0},
                {10.1,	6.2,	7.3,	8.2,	12.3,	8.5,	7.9,	7.3,	6.6,	6.4,	6.7,	7.4,	8.3},
                {9.6,	5.4,	6.5,	7.6,	8.5,	13.1,	8.8,	8.3,	7.8,	7.3,	7.0,	7.6,	8.6},
                {10.1,	4.8,	5.7,	6.8,	7.9,	8.8,	13.7,	9.3,	8.8,	8.6,	8.1,	8.0,	9.0},
                {10.6,	4.9,	5.1,	6.1,	7.3, 8.3,	9.3,	14.4,	9.9,	9.9,	9.5,	9.2,	9.4},
                {11.2,	5.2,	5.4,	5.6,	6.6, 7.8,	8.8,	9.9,	15.6,	11.3,	10.8,	10.7,	10.8},
                {13.4,	5.8,	6.0,	6.2,	6.4,	7.3,	8.6,	9.9,	11.3,	17.2,	13.1,	12.9,	13.1},
                {14.3,	6.2,	6.3,	6.5,	6.7,	7.0,	8.1,	9.5,	10.8,	13.1,	19.3,	13.7,	13.9},
                {15.5,	6.8,	6.9,	7.1,	7.4, 7.6,	8.0,	9.2,	10.7,	12.9,	13.7,	22.2,	15.1},
                {17.2,	7.6,	7.8,	8.0,	8.3,	8.6,	9.0,	9.4,	10.8,	13.1,	13.9,	15.1,	26.1},
            };    
            probabilidad= tablade10[carta1numero -1 ][carta2numero -1];     
            break;
       }
       
    }
    
    // Hasta este punto ya tenemos un valor de probabilidad bastante aproximado, sin embargo falta sumar la probabilidad de algunos casos 

    // Cuando ambas cartas son del mismo palo, existen probabilidades de sacar los juegos de color, el siguiente calculo determina esa probabilidad
    if(carta1palo== carta2palo)
    {
        float auxi = numJugadores;
        float aux = 3.5*((auxi-1)/10);
        probabilidad= probabilidad + aux;
    
    
    
        // Las probabilidades de sacar una escalera dependen del numero de huecos entre las cartas, 7 y 8 tienen 0 huecos, 7 y 9 1 hueco, 7 y J 3 huecos.
        // Dado que la escalera es de 5 cartas el numero maximo de huecos es 3, de otra manera no son consideradas para la escalera
        // Las probabilidades en caso de escalera ya se encuentran dentro de las tablas anteriores, lo que no se encuentra son las escaleras color y real
        //El calculo incluye la determinacion de los huecos entre cartas, ademas de la multiplicacion de la probabilidad de hallar escalera con una determinada cantidad de huecos con las probabilidad de que salgan 3 del mismo palo
        float probabilidadEscalera_Nohueco = 4*0.15625;
        float probabilidadEscalera_Unhueco = 3*0.15625;
        float probabilidadEscalera_Doshuecos = 1*0.15625;
        float probabilidadEscalera_Treshuecos = 0.33*0.15625;
        int hueco = abs(carta1numero - carta2numero);
        
        
        switch (hueco)
        {
            case 0:
            {
                probabilidad= probabilidad + probabilidadEscalera_Nohueco;     
                break;
            }
            
            case 1:
            {
                probabilidad= probabilidad + probabilidadEscalera_Unhueco;     
                break;
            }
            
            case 2:
            {
                probabilidad= probabilidad + probabilidadEscalera_Doshuecos;     
                break;
            }
            case 3:
            {
                probabilidad= probabilidad + probabilidadEscalera_Treshuecos;     
                break;
            }
        
    
        }
    }

    //devuelve el resultado
    return probabilidad;
       
}






